/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

/**
 *
 * @author DEP
 */
public class IndentificadorJaDeclarado extends ErroSemantico {

    private String identificador;
    private int linha;
    private TipoIdentificador tipoIdentificador;

    public IndentificadorJaDeclarado(String identificador, int linha, TipoIdentificador tipoIdentificador) {
        this.identificador = identificador;
        this.linha = linha;
        this.tipoIdentificador = tipoIdentificador;
    }

    @Override
    public String errosToString() {

        if (tipoIdentificador instanceof Funcao) {
            return "A Função \"" + identificador + "\" na linha " + linha + " já foi declarada.\n";
        } else if (tipoIdentificador instanceof Procedimento) {
            return "O Procedimento \"" + identificador + "\" na linha " + linha + " já foi declarado.\n";
        } else if (tipoIdentificador instanceof Programa) {
            return "O Programa \"" + identificador + "\" na linha " + linha + " já foi declarado.\n";
        } else if (tipoIdentificador instanceof Constante) {
            return "A constante \"" + identificador + "\" na linha " + linha + " já foi declarada.\n";
        } else if (tipoIdentificador instanceof Variavel) {
            return "A Variável \"" + identificador + "\" na linha " + linha + " já foi declarada.\n";
        } else if (tipoIdentificador instanceof Parametro) {
            return "O parâmetro \"" + identificador + "\" na linha " + linha + " já foi declarado.\n";
        }
        return null;
    }
}
